package com.wanpinghui.wphlibrary.model.user;

import com.wanpinghui.wphlibrary.model.oauth.bean.UserBean;
import com.wanpinghui.wphlibrary.model.oauth.bean.UserInformation;
import com.wanpinghui.wphlibrary.model.order.bean.PageDataBean;
import com.wanpinghui.wphlibrary.model.user.bean.AvaterBean;
import com.wanpinghui.wphlibrary.model.user.bean.BusinessTypeBean;
import com.wanpinghui.wphlibrary.model.user.bean.CompanyBean;
import com.wanpinghui.wphlibrary.model.user.bean.CreditRuleBean;
import com.wanpinghui.wphlibrary.model.user.bean.GetBusinessResult;
import com.wanpinghui.wphlibrary.model.user.bean.GetRechargeResult;
import com.wanpinghui.wphlibrary.model.user.bean.RechargePlansBean;

import java.util.ArrayList;
import java.util.List;

import retrofit.callback.YRequestCallback;

/**
 * 功能描述
 * author:caitiangui
 * time:2017/12/4
 */

public interface UserInfoService {
    void  avatar(String base64, YRequestCallback<AvaterBean> callback);

    void businessScope(List<BusinessTypeBean> bean, YRequestCallback<Object> callback);

    void UpdateUserInfo(UserInformation bean, YRequestCallback<UserInformation> callback);
    /**
     * 获取套餐列表
     * @param callback
     */
    void getPlansList(YRequestCallback<GetRechargeResult> callback);

    void getBusinissData(YRequestCallback<GetBusinessResult.TagBean> callback);

    void areasScope(boolean area_type, ArrayList<String> area_id,YRequestCallback<Object> callback);

    void credit_rule(YRequestCallback<List<CreditRuleBean>> callback);

    /**
     * 购买新项目提醒
     * @param id
     * @param callback
     */
    void buySmsPoint(int id, YRequestCallback<Object> callback);

    /**
     * 购买派单点
     * @param id
     * @param callback
     */
    void buyDispatchPoint(int id, YRequestCallback<Object> callback);

    void getMyCompany(YRequestCallback<CompanyBean> callback);

    void getMyDraftsCompany(YRequestCallback<CompanyBean> callback);

    void searchCompanyList(String keyword_,int currentPage,YRequestCallback<PageDataBean<CompanyBean>> callback);

    void saveCompanyName(CompanyBean bean,YRequestCallback<CompanyBean> callback);

    void saveCompanyBase(CompanyBean bean,YRequestCallback<CompanyBean> callback);

    void saveCompanyCaseAndCourse(CompanyBean bean,YRequestCallback<CompanyBean> callback);

    void saveCompanyRegister(CompanyBean bean,YRequestCallback<CompanyBean> callback);

    void saveCompanySkill(CompanyBean bean,YRequestCallback<CompanyBean> callback);

    void saveDrafts(CompanyBean bean,YRequestCallback<CompanyBean> callback);

    void joinCompany(long id,YRequestCallback<CompanyBean> callback);
}
